/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package authentification.entitie;

import utils.Md5Passwd;
import javax.persistence.Basic;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.Table;

/**
 *
 * @author loic.vaugeois
 */
@Entity
@Table(name="user")
@NamedQueries({
@NamedQuery(name = "UserAuth.findUser", query = "SELECT u FROM UserAuth u WHERE u.login = :loginUser")})
public class UserAuth {
/*
 ******************************ATTRIBUTS
 */
    @Id
    @Column(name="id_user")
    private long id;

    /**
     * Nom du user
     */
    @Basic
    @Column(name="nom")
    private String nom;

    /*
     * Prenom du user
     */
    @Basic
    @Column(name="prenom")
    private String prenom;
    
    /**
     * Login du UserAuth
     */
    @Basic
    @Column(name="login")
    private String login;

    /*
     * Password du user
     */
    @Basic
    @Column(name="passwd")
    private String passwd;

/*
 *******************************GETTER SETTER
 */

    public long getId() {
        return id;
    }

    public void setId(long id) {
        if (id<0) throw new IllegalArgumentException("L'id d'un user ne peut être négatif");
        this.id = id;
    }

    public String getNom() {
        return nom;
    }

    public void setNom(String nom) {
        if (nom==null) throw new IllegalArgumentException("Le nom d'un user ne peut être NULL.");
        this.nom = nom;
    }

    public String getPasswd() {
        return passwd;
    }

    public void setPasswd(String passwd) {
        if (passwd==null) throw new IllegalArgumentException("Le Password d'un user ne peut être NULL.");
        this.passwd = passwd;
    }

    public String getLogin() {
        return login;
    }

    public void setLogin(String login) {
        if (login==null) throw new IllegalArgumentException("Le login d'un user ne peut être NULL.");
        this.login = login;
    }

    public String getPrenom() {
        return prenom;
    }

    public void setPrenom(String prenom) {
        if (prenom==null) throw new IllegalArgumentException("Le Prenom d'un user ne peut être NULL.");
        this.prenom = prenom;
    }


/*
 ******************************CONSTRUCTEURS
 */
    /**
     * Constructeur UserAuth
     */
    public UserAuth(long id, String nom, String prenom, String passwd) {
      setId(id);
      setNom(nom);
      setPrenom(prenom);
      setPasswd(Md5Passwd.getEncodedPassword(passwd));
    }

    /**
     * Constructeur nécessaire à JPA
     */
    public UserAuth() {
    }


}
